KURZUS: Programozás alapjai

MODUL: III. modul

Modulzáró feladatok

| 1. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
A direktívák # karakterét nem előzheti meg semmilyen karakter a sorban. |
A direktívákat mindig le kell zárni ;-vel. |
A direktíva soremelést megelőző \ karaktere azt jelzi, hogy a következő sor folytatássor lesz, és a sorokat egyesíteni kell. |
A direktívák a forrásszövegnek csak az őket követő részeire hatnak. |
Az #include direktívával betöltött fájl nem tartalmazhat további #include-okat. |
5 pont
2. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
A makrókifejtés nem történik meg karakterlánc konstansokban. |
A __DATE__ makró segítségével a forrásfájl létrehozásának dátuma automatikusan bekerül a forrásba. |
Nem létező makró definiálatlanná tétele #undef segítségével fordítási hibát okoz. |
Paraméteres makrók paramétereit és a teljes makrótestet külön is érdemes kerek zárójelpárokba zárni. |
Ha a paraméteres makró testében ugyanaz a paraméter többször is előfordul, akkor a mellékhatások többször is jelentkezhetnek. |
5 pont
3. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
A karakterosztályozó makrók használatához be kell kapcsolni a string.h fejfájlt. |
A makrók és a függvények azonosítói azonos névteret használnak. |
Egy fejfájl többszöri bekapcsolása meggátolható a helyesen használt #ifndef direktívával. |
A #pragma direktívát követő szimbólumokat nem rögzíti az ANSI C szabványa. |
A tárolási osztály meghatározza az objektum élettartamát, hatáskörét és kapcsolódását. |
5 pont
4. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
A függvényparaméterek automatikus tárolási osztályúak. |
A blokkon belül definiált objektumok alapértelmezett tárolási osztálya az extern. |
Az auto tárolási osztály specifikátor globális hatáskörű objektumok deklarációjában is használható. |
Az automatikus tárolási osztályú objektumoknak nincs kapcsolódásuk. |
A register tárolási osztályú változókat a fordító mindig a processzor regisztereiben tárolja, és sosem helyezi el a memóriában. |
5 pont
5. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
A register tárolási osztályú változók címére nem lehet hivatkozni. |
A static kulcsszavas deklaráció definíció. |
A blokkon belüli static tárolási osztályú változónak történő memóriafoglalást követően implicit kezdőérték adás is történik. |
Külső kapcsolódású változó definíciója az extern kulcsszó használatával lehetséges. |
A statikus élettartamú változóknak a programozó felelőssége használat előtt memóriát foglalni, majd használat után azt felszabadítani. |
5 pont
6. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
A statikus élettartamú objektumok fájl szintű (globális) hatáskörrel rendelkeznek. |
Az automatikus változók explicit inicializálásra szorulnak. |
A lokális élettartamú objektum mindig lokális hatáskörű. |
A statikus élettartamú objektum mindig globális hatáskörű. |
A függvények paraméterei lokális hatáskörűek. |
5 pont
7. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
A blokk hatáskörű változók mindig láthatóak a beágyazott blokkokban. |
A függvény paraméterei függvény hatáskörrel rendelkeznek. |
A függvény prototípusában szereplő paraméterlista azonosítóinak hatásköre a függvény teljes definíciójára kiterjed. |
A függvény prototípusában szereplő paraméterek azonosítóit nem kell egyeztetni a függvény definíciójában szereplő paraméterek azonosítóival. |
A globális (minden függvény testén kívül) elhelyezett azonosítók hatásköre a teljes forrásfájlra kiterjed. |
5 pont
8. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
Egy programban szerepelhet több egyforma azonosítójú, belső kapcsolódású objektum. |
Ugyanaz a függvény egy programban akár többször is deklarálható. |
A függvény prototípusok használata egyáltalán nem kötelező. |
A hívott függvényből akár return utasítás nélkül is vissza lehet térni a hívóba. |
Függvény lokális változóinak hatásköre a beágyazott függvényre is kiterjed. |
5 pont
9. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
Egy függvény hívását meg kell előznie legalább egy deklarációjának. |
A függvény visszatérési értékének típusát röviden csak a függvény típusaként szoktuk említeni. |
Függvénynek tömböt átadva igazából nem is a tömb, hanem csak annak címe kerül átadásra. |
Függvény aktuális paraméterének típusa nem feltétlenül kell, hogy egyezzen a formális paraméter típusával. |
A függvény prototípusából mindig egyértelműen kiderül, hogy pontosan hány paraméter átadására számít a függvény. |
5 pont
10. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
A fordító mindig ellenőrzi, hogy a függvény aktuális paramétereinek típusai hozzárendelés kompatibilisek-e a formális paraméterekkel. |
A függvénytestben minden változó tárolási osztálya auto. |
A függvénytestben minden változó alapértelmezett tárolási osztálya auto. |
A void visszatérési értékű függvényben nem szerepelhet a return kulcsszó. |
A nem deklarált függvény alapértelmezett visszatérési érték típusa void. |
5 pont
11. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
A nem deklarált függvény alapértelmezett visszatérési érték típusa int. |
Az int fv() és az int fv(void) deklarációk ekvivalensek. |
A függvény paraméterei külön intézkedés nélkül úgy használhatóak, mint bármely lokális változója, akár az értékük is megváltoztatható. |
Rekurzív függvényhívások során az aktuális paramétereknek mindig újabb memóriaterületet foglal a fordító. |
A mutatók adatot, függvényt és típust is képesek megcímezni. |
5 pont
12. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
A mutatók memóriacímek tárolására szolgálnak. |
A mutatókat más néven vektoroknak is szokták nevezni. |
A mutatók technikailag előjel nélküli egészek, de használatukra speciális szabályok, korlátozások vonatkoznak. |
A mutató típusa a deklarációban rögzíti annak az objektumnak a típusát, amelyet a mutató megcímezhet. |
A void* típusú mutató semmit sem képes megcímezni. |
5 pont
13. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
A lokális élettartamú mutatók implicit módon NULL kezdőértéket kapnak. |
A NULL mutató az ú.n. nulláslap megcímzésére szolgál. |
Típustól függetlenül, bármilyen mutató összehasonlítható a NULL értékkel. |
Típustól függetlenül, bármilyen mutató felveheti a NULL értéket. |
register tárolási osztályú változók címe a & operátorral képezhető. |
5 pont
14. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
Egy adatmutató értékét felveheti egy másik adatmutató, bár explicit típuskényszerítésre szükség lehet. |
Egy adatmutató értékét felveheti egy kódmutató, bár explicit típuskényszerítésre szükség lehet. |
A mutató által nyilvántartott helyen lévő érték elérése a * operátorral lehetséges. |
A printf képes mutatók értékeinek megjelenítésére a p típuskarakterrel. |
A void* típusú mutató egy meg nem határozott típusú adatot címez meg. |
5 pont
15. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
Statikus élettartamú objektum címével inicializálható egy lokális élettartamú mutató. |
Lokális élettartamú objektum címével inicializálható egy statikus élettartamú mutató. |
A const char* s paramétert fogadó függvény nem változtathatja meg az s változó értékét. |
A const char* s paramétert fogadó függvény nem változtathatja meg az s címen lévő karakterlánc tartalmát. |
A char* const s paramétert fogadó függvény nem változtathatja meg az s változó értékét. |
5 pont
16. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
A char* const s paramétert fogadó függvény nem változtathatja meg az s címen lévő karakterlánc tartalmát. |
Tömbindexelésnél semmi akadálya annak, hogy az index mögé szögletes zárójelpárba a tömb nevét írjuk. |
A C-ben nincs külön szintaktikai lehetőség a cím szerinti paraméterátadásra, de a címképző operátor használatával ez a probléma megkerülhető. |
A t[i] tömbindexelés ekvivalens módon átírható *(t+i)-re. |
A t[i] tömbindexelés ekvivalens módon átírható *t+i-re. |
5 pont
17. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
A tömb utolsó utáni "elemét" címző mutató még legális. |
A tömb első előtti "elemét" címző mutató még legális. |
A címaritmetikai műveletek csak tömbökön történő alkalmazás esetén értelmezettek. |
Ha két mutató azonos címet tárol, de az egyik konstans mutató, a másik azonban nem, akkor az egyezőségi reláció hamis eredményre vezet. |
A karakterlánc kezelő függvények akkor is biztonságosan használhatók, ha a memóriában egymást átfedő karaktertömbökre használjuk őket. |
5 pont
18. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
Az strcat függvény nem ellenőrzi, hogy az eredmény karakterlánc el fog-e férni a neki szánt helyen. |
A str... kezdetű könyvtári függvények feltételezik, hogy a paraméterként átadott karaktertömbök a lánczáró karaktert már tartalmazzák. |
Az strcmp a karakterláncok összehasonlításakor nem különbözteti meg a kis- és nagybetűket. |
Az strlen függvény a paraméter karakterlánc hosszába a lánczáró karaktert is beleszámítja. |
Az strtok függvény minden hívásánál nyugodtan lecserélhetjük az elválasztó jeleket valami másra. |
5 pont
19. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
Az strtok függvény működése közben megváltoztatja a karakterláncot, amiben a szimbólumokat keresi. |
A mutatótömb olyan mutató, amely egy tömböt címez meg. |
A mutatótömb olyan tömb, ami mutatókból áll. |
A nyelv nem korlátozza egy tömb dimenzióinak számát. |
Tömindexelésnél a szögletes zárójelpárban egymástól vesszővel elválasztva kell felsorolni az indexeket. |
5 pont
20. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
A tömbindexelésnél az indexek dimenziónként eltérő intervallumba eshetnek. |
A többdimenziós tömb inicializálásakor akár beágyazott inicializátor listák is használhatóak. |
Többdimenziós tömbök inicializálásakor a kapcsoszárójel párok számának egyeznie kell a tömb dimenzióinak számával. |
srand hívás hiányában az egymást követő rand hívások mindig ugyanazt az értéket fogják szolgáltatni. |
srand hívás hiányában az egymást követő rand hívások az értékeknek mindig ugyanazt a sorozatát fogják szolgáltatni. |
5 pont
21. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
A rand függvény nem képes negatív érték visszaadására. |
A time függvény minden hívásakor más-más eredményt ad. |
A fordító a globális változóknak a heap-en foglal helyet. |
A fordító a lokális változókat a veremben helyezi el. |
Dinamikus memóriakezeléshez be kell szerkeszteni az stdlib.h fejfájlt. |
5 pont
22. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
A globális errno változó vizsgálatával lehet kideríteni, mi okozta a malloc függvény futása során a hibát. |
Ha a program futása során minden rendben zajlott, a main függvény ezt 1 érték visszaadásával jelezheti az operációs rendszernek. |
A main függvény első, általában argc nevű paraméterének értéke mindig eggyel nagyobb a parancssori paraméterek számánál. |
A main függvény második, általában argv nevű paramétere egy karakteres mutatótömb. |
A getenv függvény üres karakterláncot címző mutató visszaadásával jelzi, ha a paraméterként átadott nevű környezeti változó nem létezik. |
5 pont
23. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
Az abort() és az exit(3) hívások ekvivalensek. |
int fv(double, int); -ben az fv típusa konstans kódmutató. |
Az int *fv(int); függvény egészet címző mutatóval tér vissza. |
Az int (*fv)(int); függvény egészet címző mutatóval tér vissza. |
Mutatóaritmetika kódmutatókon is végezhető. |
1 pont